<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>Title</title>
</head>
<body>
<script>
  //冒泡算法
  function bubbleSort(arr) {
    var len=arr.length;
    for(var i=0;i<len-1;i++){ //4 3 2 1
      for(let j=0;j<len-1-i;j++){
        if(arr[j]>arr[j+1]){
          var temp=arr[j+1];
          arr[j+1]=arr[j];
          arr[j]=temp;
        }
      }
    }
    return arr;
  }

  //选择排序
  function selectionSort(arr) {
    var len=arr.length;
    var minIndex,temp;
    for(var i=0;i<len-1;i++){
      minIndex=i;
      for(j=i+1;j<len;j++){
        if(arr[j]<arr[minIndex]){//前>后 记录小值下标
          minIndex=j;
        }
      }
      temp=arr[i];
      arr[i]=arr[minIndex];
      arr[minIndex]=temp;
    }
  }

  //插入排序
  function insertionSort(arr) {
    var len=arr.length;
    var preIndex,current;
    for(var i=1;i<len;i++){
      preIndex=i-1;//0
      current=arr[i];//1
      while (preIndex>=0&&arr[preIndex]>current){
        arr[preIndex+1]=arr[preIndex];
        preIndex--;
      }
      arr[preIndex+1]=current;
    }
    return arr;
  }

  //希尔排序
  function shellSort(arr) {
    var len=arr.length,temp,gap=1;
    while (gap<len/3){
      gap=gap*3+1;
    }
    for(gap;gap>0;gap=Math.floor(gap/3)){
      for(var i=gap;i<len;i++){
        temp=arr[i];
        for(var j=i-gap;j>=0&&arr[j]>temp;j-=gap){
          arr[j+gap]=arr[j];
        }
        arr[j+gap]=temp;
      }
    }
    return arr;
  }
  // /,3,7,6,11,9,10
  var arr=[4,5,2,3,1]
  selectionSort2(arr)
</script>
</body>
</html>
